package com.ruoyi.psi.sale.salereturn.service;


import com.ruoyi.psi.sale.salereturn.domain.SaleReturn;
import com.ruoyi.psi.sale.salereturn.domain.SaleReturnList;

import java.util.List;

/**
 * 销售退回
 * 业务层
 */
public interface ISaleReturnService {


    /**
     * 销售订单退货查询
     * @param saleReturn
     * @return
     */
    public List<SaleReturn> selectSaleReturnList(SaleReturn saleReturn);

    /**
     * 按编号查询
     * @param saleReturnId 销售订单退货编号
     * @return
     */
    public SaleReturn selectSaleReturnById(String saleReturnId);

    /**
     * 销售订单退货新增
     * @param saleReturn
     * @return
     */
    public int insertSaleReturn(SaleReturn saleReturn) throws Exception;

    /**
     * 销售订单退货更新
     * @param saleReturn
     * @return
     */
    public int updateSaleReturn(SaleReturn saleReturn) throws Exception;

    /**
     * 更新销售订单退货删除标志位
     * @param saleReturn
     * @return
     */
    public int updateSaleReturnDeleteFlag(SaleReturn saleReturn);

    /**
     * 销售订单退货详细查询
     * @param saleReturnList
     * @return
     */
    public List<SaleReturnList> selectSaleReturnListList(SaleReturnList saleReturnList);

    /**
     * 查询销售订单退货对应的所有产品详细
     * @param saleReturnId 销售订单退货编号
     * @return
     */
    public List<SaleReturnList> selectSaleReturnListListById(String saleReturnId);

    /**
     * 查询销售订单退货对应的指定产品详细
     * @param saleReturnId
     * @return
     */
    public SaleReturnList  selectSaleReturnListById(String saleReturnId, String produceId);

    /**
     * 新增销售订单退货时，获取对应的销售出库详细
     * @param saleDeliveryId 销售订单出库编号
     * @return
     */
    public List<SaleReturnList> getSaleDeliveryListForReturn(String saleDeliveryId);
}
